package com.aliyun.messagemgt.entities;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * 短信配额
 *
 * @author byp
 * @date 2020/07/10
 */
@Accessors(chain = true)
@Data
public class SmsQuotaEntity implements Serializable {

    private static final long serialVersionUID = 1544678768273137504L;

    /**
     * 短信配额主键
     */
    @ApiModelProperty(value = "短信配额主键")
    private Integer id;

    /**
     * 消息源表消息源UUID
     */
    @ApiModelProperty(value = "消息源表消息源UUID")
    private String msgSourceId;

    /**
     * 短信配额类型 1-年度 2-月度
     */
    @ApiModelProperty(value = "短信配额类型 1-年度 2-月度")
    private Integer quotaType;

    /**
     * 配额包类型 1-固定配额包 2-自定义配额包
     */
    @ApiModelProperty(value = "配额包类型 1-固定配额包 2-自定义配额包")
    private Integer quotaPackageType;

    /**
     * 配额
     */
    @ApiModelProperty(value = "配额")
    private Integer quota;

    /**
     * 配额包数量
     */
    @ApiModelProperty(value = "配额包数量,最大为10")
    private Integer quotaPackageNum;

    /**
     * 生效状态 1-已生效 2-未生效 3-失效
     */
    @ApiModelProperty(value = "生效状态 1-已生效 2-未生效 3-失效")
    private Integer effectiveStatus;

    /**
     * 生效类型 1-立即生效 2-次月/次年生效
     */
    @ApiModelProperty(value = "生效类型 1-立即生效 2-次月/次年生效 ")
    private Integer effectiveType;

    /**
     * 生效起始时间
     */
    @ApiModelProperty(value = "生效起始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date effectiveBeginTime;

    /**
     * 生效截止时间
     */
    @ApiModelProperty(value = "生效截止时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date effectiveEndTime;

    /**
     * 触发告警配额余量
     */
    @ApiModelProperty(value = "触发告警配额余量")
    private Integer monitorMarginQuota;

    /**
     * 触发续订配额余量
     */
    @ApiModelProperty(value = "触发续订配额余量")
    private Integer renewMarginQuota;

    /**
     * 续订配额（注意单位，前端提交为千条）
     */
    @ApiModelProperty(value = "续订配额")
    private Integer renewQuota;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createUserName;

    /**
     * 创建人编码
     */
    @ApiModelProperty(value = "创建人编码")
    private String createUserCode;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private String updateUserName;

    /**
     * 修改人编码
     */
    @ApiModelProperty(value = "修改人编码")
    private String updateUserCode;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

}
